package com.cc.wechat.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cc.wechat.entity.ChatSession;
import com.cc.wechat.dto.response.ChatSessionResponse;
import java.util.List;

/**
 * 会话服务接口
 */
public interface ChatSessionService extends IService<ChatSession> {
    /**
     * 创建会话
     * @param targetId 目标用户或群组ID
     * @param type 会话类型（0:私聊 1:群聊）
     * @return 会话信息
     */
    ChatSessionResponse createOrGetSession(Long targetId, Integer type, String lastMessage);

    /**
     * 根据targetId获取会话
     * @param targetId 目标ID
     * @return 会话信息
     */
    ChatSessionResponse getSessionByTargetId(Long targetId);

    /**
     * 获取用户的会话列表
     * @return 会话列表
     */
    List<ChatSessionResponse> getSessionList();

    /**
     * 更新会话的最后一条消息
     * @param sessionId 会话ID
     * @param message 消息内容
     */
    void updateLastMessage(Long sessionId, String message);

    /**
     * 增加会话未读数
     * @param sessionId 会话ID
     */
    void incrementUnreadCount(Long sessionId);

    /**
     * 清空会话未读数
     * @param sessionId 会话ID
     */
    void clearUnreadCount(Long sessionId);

    /**
     * 设置会话置顶状态
     * @param sessionId 会话ID
     * @param isTop 是否置顶
     */
    void setTopStatus(Long sessionId, Boolean isTop);

    /**
     * 删除会话
     * @param sessionId 会话ID
     */
    void deleteSession(Long sessionId);
} 